The signaling path for Internet Protocol Multimedia Subsystem (IMS) telephony servers is complex. Suppose that IMS is used to establish a communications session (via the exchange of Session Initiation Protocol messages, also known as SIP) between a sending device and a receiving device during a Voice over Internet Protocol (VoIP) call. In IMS, the use of multiple proxies, session control servers and application servers is required in order to handle each SIP message sent or received.
Specifically, a Session Initiation Protocol (SIP) client on a device sends and receives messages. The complex nature of the signaling path is necessary for the following reasons. First, it is needed in order to hide the internal server infrastructure from the client and from other network providers. Second, it is needed to ensure that applications are invoked in a proper order. Third, it is needed to route every signaling message to or from a particular user through the same server instances in order to maintain the context between multiple sessions associated with a single user.
IMS and similar architectures have employed proxies, which relay each message to a call session control function (CSCF) associated with a particular user, thereby adding hops to each message. All messages are anchored through a common CSCF in order to apply a series of tests, called filter criteria, to each SIP signaling message received. This adds processing overhead, before passing the message to an application server.
The application server performs processing on the message, and then returns the message back to the CSCF for additional or final handling. Often the SIP message is passed by the CSCF to another application server in a sequence, and this process may be repeated several times. Thus, all messages between application servers must route through the CSCF, which only handles well-formed SIP messages. Therefore, in order for any server in a sequence of application servers to change the flow of messages to another, downstream, application server, which is often required, header information must be added to a message and this header information must be tested by the CSCF as part of the filter criteria associated with a service. In the process, each message requires a great deal of computational processing. For example, when using a pre-paid service (e.g., using a pre-paid mobile telephone), any toll call may need to pass through a debit server which checks whether the user of the pre-paid service has sufficient balance to make the toll call. The debit server can terminate the toll call whenever the user's funds are insufficient and the user's balance runs out. However, if the call is a local, unmetered call, or an emergency call, the debit server would not be required. Therefore, a first application server may analyze the number, determine if the debit server is required (based on the type of number) and if it would be necessary to add some header to the SIP message. The first application server would then return the altered message to the CSCF which would require filter criteria associated with the user's service profile in order to test for this header. The CSCF would then determine if it should next invoke the debit server or not. Every subsequent SIP message passes through every initially invoked server, regardless of the type of the number (e.g., a toll call, a local call, an emergency call, etc.). Therefore, invoking the debit server unnecessarily may result in additional processing and overhead on each subsequent signaling message.
This results in a great deal of extra signaling in the platform needed to accomplish the process of communication of messages in IMS.
In addition to the above-described signaling load, media is also passed from the client to a secure media relay server and from there to a terminating media relay server and then to the receiving client. Every time the media goes to another relay server, the SIP signaling messages associated with the session must be rewritten to change the addresses and port numbers of the media connections. This adds further to processing overhead, as every signaling message has to be changed at every media hop. The flow of packets/data in messages that are transferred may be a multi-tier design in which every message from all users must always pass from a Proxy-CSCF (P-CSCF) tier to a Serving-CSCF (S-CSCF) tier, to an application server tier and then to an Interrogating-CSCF (I-CSCF) and so on to reach a receiving client. Thus, there is an extra amount of equipment required because the maximum traffic load which can be accommodated by the platform as a whole is based upon a worst-case flow through each tier. Such a system also sets a limit to the maximum number of users that can be hosted by a particular number of servers.